// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const _ = db.command
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  // 签到次数置零
  if (event.tag == 'subqiandao') {
    return await db.collection('lookvideos_qiandao').where({
          _openid: wxContext.OPENID,
      }).update({
        data: {
          qiandaoNum: 0
        }
      })
      .then(res => {
        return res.data
      })
  }
  // 减去一次观看次数
  if (event.tag == 'subLookNum') {
    return await db.collection('lookvideos_qiandao').where({
          _openid: wxContext.OPENID,
      }).update({
        data: {
          lookVideosNum: _.inc(-1)
        }
      })
      .then(res => {
        // 返回观看次数
        return new Promise((resolve,reject)=>{
          db.collection('lookvideos_qiandao').where({
            _openid: wxContext.OPENID
        }).get()
        .then(res => {
          resolve(res.data[0].lookVideosNum)
        })
        })
      })
  }
  if (event.tag == 'get') {
    return await db.collection('lookvideos_qiandao').where({
          _openid: wxContext.OPENID
      }).get()
      .then(res => {
        return res.data
      })
  }
  if (event.tag == 'select') {
    let info = null
    let _updateTime = event._updateTime
    return await db.collection('lookvideos_qiandao').where({
        _openid: wxContext.OPENID
      })
      .get()
      .then(res => {
        if (!res.data.length) {
          // 如果没有数据，添加一条
          return db.collection('lookvideos_qiandao')
          .add({
            data: {
              _openid: wxContext.OPENID,
              _createTime: new Date(),
              _updateTime,
              lookVideosNum: 10,
              qiandaoNum: 1
            }
          })
          .then(res => {
            info="添加一条新数据ok"
            return info
          })
        } else {
          // 有数据
          // 查询今天的数据
          // 有今天的数据，返回
          // 没有今天的更新昨天的数据，更新时间，签到次数，看视频次数
          return db.collection('lookvideos_qiandao').where({
            _openid: wxContext.OPENID,
            _updateTime,
          })
          .get()
          .then(res => {
            info = "云函数查询今天的数据"
            if(!res.data.length){
              return db.collection('lookvideos_qiandao').where({
                _openid: wxContext.OPENID
              }).update({
                data: {
                  _updateTime,
                  lookVideosNum: 10,
                  qiandaoNum: 1
                }
              }).then(res=>{
                info = "云函数把数据更新为今天的"
                return {
                  res,
                  info
                }
              })
            }
 
          })

        }
        
      })
  }
  // return {
  //   event,
  //   openid: wxContext.OPENID,
  //   appid: wxContext.APPID,
  //   unionid: wxContext.UNIONID,
  // }
}